package generator.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 
 * @TableName app_info
 */
@TableName(value ="app_info")
@Data
public class AppInfo implements Serializable {
    /**
     * 主键id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 软件名称
     */
    private String softwarename;

    /**
     * APK名称（唯一）
     */
    private String apkname;

    /**
     * 支持ROM
     */
    private String supportrom;

    /**
     * 界面语言
     */
    private String interfacelanguage;

    /**
     * 软件大小（单位：M）
     */
    private BigDecimal softwaresize;

    /**
     * 更新日期
     */
    private Date updatedate;

    /**
     * 开发者id（来源于：dev_user表的开发者id）
     */
    private Long devid;

    /**
     * 应用简介
     */
    private String appinfo;

    /**
     * 状态（来源于：data_dictionary，1 待审核 2 审核通过 3 审核不通过 4 已上架 5 已下架）
     */
    private Long status;

    /**
     * 上架时间
     */
    private Date onsaledate;

    /**
     * 下架时间
     */
    private Date offsaledate;

    /**
     * 所属平台（来源于：data_dictionary，1 手机 2 平板 3 通用）
     */
    private Long flatformid;

    /**
     * 所属三级分类（来源于：data_dictionary）
     */
    private Long categorylevel3;

    /**
     * 下载量（单位：次）
     */
    private Long downloads;

    /**
     * 创建者（来源于dev_user开发者信息表的用户id）
     */
    private Long createdby;

    /**
     * 创建时间
     */
    private Date creationdate;

    /**
     * 更新者（来源于dev_user开发者信息表的用户id）
     */
    private Long modifyby;

    /**
     * 最新更新时间
     */
    private Date modifydate;

    /**
     * 所属一级分类（来源于：data_dictionary）
     */
    private Long categorylevel1;

    /**
     * 所属二级分类（来源于：data_dictionary）
     */
    private Long categorylevel2;

    /**
     * LOGO图片url路径
     */
    private String logopicpath;

    /**
     * LOGO图片的服务器存储路径
     */
    private String logolocpath;

    /**
     * 最新的版本id
     */
    private Long versionid;

    private String flatformname;
    private String categorylevel1name;
    private String categorylevel2name;
    private String categorylevel3name;
    private String statusname;
    private String versionno;
//    private Integer status;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        AppInfo other = (AppInfo) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getSoftwarename() == null ? other.getSoftwarename() == null : this.getSoftwarename().equals(other.getSoftwarename()))
            && (this.getApkname() == null ? other.getApkname() == null : this.getApkname().equals(other.getApkname()))
            && (this.getSupportrom() == null ? other.getSupportrom() == null : this.getSupportrom().equals(other.getSupportrom()))
            && (this.getInterfacelanguage() == null ? other.getInterfacelanguage() == null : this.getInterfacelanguage().equals(other.getInterfacelanguage()))
            && (this.getSoftwaresize() == null ? other.getSoftwaresize() == null : this.getSoftwaresize().equals(other.getSoftwaresize()))
            && (this.getUpdatedate() == null ? other.getUpdatedate() == null : this.getUpdatedate().equals(other.getUpdatedate()))
            && (this.getDevid() == null ? other.getDevid() == null : this.getDevid().equals(other.getDevid()))
            && (this.getAppinfo() == null ? other.getAppinfo() == null : this.getAppinfo().equals(other.getAppinfo()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getOnsaledate() == null ? other.getOnsaledate() == null : this.getOnsaledate().equals(other.getOnsaledate()))
            && (this.getOffsaledate() == null ? other.getOffsaledate() == null : this.getOffsaledate().equals(other.getOffsaledate()))
            && (this.getFlatformid() == null ? other.getFlatformid() == null : this.getFlatformid().equals(other.getFlatformid()))
            && (this.getCategorylevel3() == null ? other.getCategorylevel3() == null : this.getCategorylevel3().equals(other.getCategorylevel3()))
            && (this.getDownloads() == null ? other.getDownloads() == null : this.getDownloads().equals(other.getDownloads()))
            && (this.getCreatedby() == null ? other.getCreatedby() == null : this.getCreatedby().equals(other.getCreatedby()))
            && (this.getCreationdate() == null ? other.getCreationdate() == null : this.getCreationdate().equals(other.getCreationdate()))
            && (this.getModifyby() == null ? other.getModifyby() == null : this.getModifyby().equals(other.getModifyby()))
            && (this.getModifydate() == null ? other.getModifydate() == null : this.getModifydate().equals(other.getModifydate()))
            && (this.getCategorylevel1() == null ? other.getCategorylevel1() == null : this.getCategorylevel1().equals(other.getCategorylevel1()))
            && (this.getCategorylevel2() == null ? other.getCategorylevel2() == null : this.getCategorylevel2().equals(other.getCategorylevel2()))
            && (this.getLogopicpath() == null ? other.getLogopicpath() == null : this.getLogopicpath().equals(other.getLogopicpath()))
            && (this.getLogolocpath() == null ? other.getLogolocpath() == null : this.getLogolocpath().equals(other.getLogolocpath()))
            && (this.getVersionid() == null ? other.getVersionid() == null : this.getVersionid().equals(other.getVersionid()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getSoftwarename() == null) ? 0 : getSoftwarename().hashCode());
        result = prime * result + ((getApkname() == null) ? 0 : getApkname().hashCode());
        result = prime * result + ((getSupportrom() == null) ? 0 : getSupportrom().hashCode());
        result = prime * result + ((getInterfacelanguage() == null) ? 0 : getInterfacelanguage().hashCode());
        result = prime * result + ((getSoftwaresize() == null) ? 0 : getSoftwaresize().hashCode());
        result = prime * result + ((getUpdatedate() == null) ? 0 : getUpdatedate().hashCode());
        result = prime * result + ((getDevid() == null) ? 0 : getDevid().hashCode());
        result = prime * result + ((getAppinfo() == null) ? 0 : getAppinfo().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getOnsaledate() == null) ? 0 : getOnsaledate().hashCode());
        result = prime * result + ((getOffsaledate() == null) ? 0 : getOffsaledate().hashCode());
        result = prime * result + ((getFlatformid() == null) ? 0 : getFlatformid().hashCode());
        result = prime * result + ((getCategorylevel3() == null) ? 0 : getCategorylevel3().hashCode());
        result = prime * result + ((getDownloads() == null) ? 0 : getDownloads().hashCode());
        result = prime * result + ((getCreatedby() == null) ? 0 : getCreatedby().hashCode());
        result = prime * result + ((getCreationdate() == null) ? 0 : getCreationdate().hashCode());
        result = prime * result + ((getModifyby() == null) ? 0 : getModifyby().hashCode());
        result = prime * result + ((getModifydate() == null) ? 0 : getModifydate().hashCode());
        result = prime * result + ((getCategorylevel1() == null) ? 0 : getCategorylevel1().hashCode());
        result = prime * result + ((getCategorylevel2() == null) ? 0 : getCategorylevel2().hashCode());
        result = prime * result + ((getLogopicpath() == null) ? 0 : getLogopicpath().hashCode());
        result = prime * result + ((getLogolocpath() == null) ? 0 : getLogolocpath().hashCode());
        result = prime * result + ((getVersionid() == null) ? 0 : getVersionid().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", softwarename=").append(softwarename);
        sb.append(", apkname=").append(apkname);
        sb.append(", supportrom=").append(supportrom);
        sb.append(", interfacelanguage=").append(interfacelanguage);
        sb.append(", softwaresize=").append(softwaresize);
        sb.append(", updatedate=").append(updatedate);
        sb.append(", devid=").append(devid);
        sb.append(", appinfo=").append(appinfo);
        sb.append(", status=").append(status);
        sb.append(", onsaledate=").append(onsaledate);
        sb.append(", offsaledate=").append(offsaledate);
        sb.append(", flatformid=").append(flatformid);
        sb.append(", categorylevel3=").append(categorylevel3);
        sb.append(", downloads=").append(downloads);
        sb.append(", createdby=").append(createdby);
        sb.append(", creationdate=").append(creationdate);
        sb.append(", modifyby=").append(modifyby);
        sb.append(", modifydate=").append(modifydate);
        sb.append(", categorylevel1=").append(categorylevel1);
        sb.append(", categorylevel2=").append(categorylevel2);
        sb.append(", logopicpath=").append(logopicpath);
        sb.append(", logolocpath=").append(logolocpath);
        sb.append(", versionid=").append(versionid);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}